Dynamic programming for computer register allocation

نویسنده

  • William W. Agresti
چکیده

Scope and pur~s~computers and operations research admit to a rich and complex interface. Most examples of problem solving in this domain use both computers and operations research as tools to solve problems[I. 21. In particular, the computer is used as a tool in implementing a solution technique arising from an operations research model. A different aspect of this interface is explored here: operations research methodology is used as an analytical tool for a computer problem. With their widespread use, computers themselves comprise an application area of vital concern. Operations research approaches can be valuable in this regard, as evidenced by queueing models of computer operating systems]31 and mathematical programming models of information systems[4]. In the present work. dynamic programming is used to solve a problem in the optimization of computer programs. Programs written in a high-level language (like FORTRAN) are translated into machine language by a compiler. The general problem is to make this machine language version efficient (i.e.. execute fast and conserve memory). A specific problem of this type-namely. index register allocation-is formulated in this paper. The solution is a dynamic programming-based procedure which could be included in the compiler to generate more efficient programs.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Optimal Integrated VLIW Code Generation with Integer Linear Programming

We give an Integer Linear Programming (ILP) solution that fully integrates all steps of code generation, i.e. instruction selection, register allocation and instruction scheduling, on the basic block level for VLIW processors. In earlier work, we contributed a dynamic programming (DP) based method for optimal integrated code generation, implemented in our retargetable code generator OPTIMIST. I...

متن کامل

Issues and Support for Dynamic Register Allocation

Post-link and dynamic optimizations have become important to achieve program performance. This is because, it is difficult to produce a single binary that fits all micro-architectures and provides good performance for all inputs. A major challenge in post-link and dynamic optimizations is the acquisition of registers for inserting optimization code with the main program. We show that it is diff...

متن کامل

Optimized Register Usage for Dynamic Instrumentation

Dynamic instrumentation of programs presents an interesting problem for register usage. Since program functionality can be changed at any given instruction in the program, it is imperative that register state is the same before and after the instrumentation code. The trivial solution is to spill all registers before instrumentation code is generated. This paper discusses more efficient methods ...

متن کامل

Code Generation Techniques

Optimal instruction scheduling and register allocation are NP-complete problems that require heuristic solutions. By restricting the problem of register allocation and instruction scheduling for delayed-load architectures to expression trees we are able to nd optimal schedules quickly. This thesis presents a fast, optimal code scheduling algorithm for processors with a delayed load of 1 instruc...

متن کامل

Integrated Optimal Code Generation for Digital Signal Processors

In this thesis we address the problem of optimal code generation for irregular architectures such as Digital Signal Processors (DSPs). Code generation consists mainly of three interrelated optimization tasks: instruction selection (with resource allocation), instruction scheduling and register allocation. These tasks have been discovered to be NP-hard for most architectures and most situations....

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Computers & OR

دوره 4  شماره 

صفحات  -

تاریخ انتشار 1977